'''
正则表达式：(regular expression)
是一个描述字符串模式的对象
正则表达式主要用来验证用户的数据 以及对
文本内容的信息过滤，获取满足条件的内容
这样做到好处是提高匹配效率、减少遍历时间
正则表达式有自己的语法（字符和操作符组成）
'''
import re

match = re.search(r'([0-9]*)([a-zA-Z]*)([0-9]*)','123abc456')
print(match)
print(type(match))
if match:
    print(match.group(0))#满足条件的所有结果
    print(match.group(1))#满足第一个条件的
    print(match.group(2))#满足第二个条件
    print(match.group(3))#满足第三个条件
'''
group()用来提取分组截获的字符串 （数字）用来表示分组
如：r'([0-9]*)([a-zA-Z]*)([0-9]*)'
正则表达式中的3组（）把匹配的结果分成3组
group() == group(0) 匹配正则表示的整体结果
group(1) 表示匹配第一个 () 的匹配部分
同理有几个 （） 就有几个 group（）分组
注意 ： 如果正则表达式中没有（） 意思明确是没有分组
所以  group（1) 就会出现错误
'''
'''邮编 第一位非0 一共6位数字'''
match = re.match(r'^[1-9]\d{5}$','451231')
if match:
    print('YES')
else:
    print('NO')
'''纯数字组成（11位）'''
match = re.match(r'^1\d{10}$','12345678901')
if match:
    print('YES')
else:
    print('NO')
'''去空格'''
# after_string = re.sub(r' ','','11 22 33 44')
#sub 将要查找的字符串中要不需要的内容替换成想要的内容
after_string = re.sub(r'(\n|\n | )','','11\n  22\n33 44')
print(after_string)

match = re.match(r'([0-9]|[1-9]\d)$','29')#0-99
if match:
    print('YES')
else:
    print('NO')
match = re.match(r'^1\d{2}$','100')
if match:
    print('YES')
else:
    print('NO')
'''货币规则'''
match = re.match(r'^[0-9]{1,3}(,[0-9]{3})*(\.[0-9]{1,2})?$','102,110.00')
if match:
    print('YES')
else:
    print('NO')

